import request from '../utils/request.js'
import apiConfig from '../config/api.js'

// 文章相关接口
export const articleApi = {
	// 获取文章列表
	getArticles: (params = {}) => {
		return request({
			url: apiConfig.apiList.getArticles,
			method: 'GET',
			params: params, // 传递查询参数如page, pageSize, status等
			needAuth: false // 支持匿名访问，但如果有token会自动携带
		})
	},
	
	// 获取单个文章详情
	getArticleDetail: (id) => {
		return request({
			url: apiConfig.apiList.getArticleDetail.replace(':id', id),
			method: 'GET',
			needAuth: false // 支持匿名访问，但如果有token会自动携带
		})
	},
	
	// 创建新文章
	createArticle: (data) => {
		return request({
			url: apiConfig.apiList.createArticle,
			method: 'POST',
			data: data
		})
	},
	
	// 更新文章
	updateArticle: (id, data) => {
		return request({
			url: apiConfig.apiList.updateArticle.replace(':id', id),
			method: 'PUT',
			data: data
		})
	},
	
	// 删除文章
	deleteArticle: (id) => {
		return request({
			url: apiConfig.apiList.deleteArticle.replace(':id', id),
			method: 'DELETE'
		})
	},
	
	// 更新文章状态
	updateArticleStatus: (id, status) => {
		return request({
			url: apiConfig.apiList.updateArticleStatus.replace(':id', id),
			method: 'PATCH',
			data: { status: status }
		})
	},
	
	// 获取作者的文章列表
	getAuthorArticles: (authorId) => {
		return request({
			url: apiConfig.apiList.getAuthorArticles.replace(':authorId', authorId),
			method: 'GET'
		})
	},
	
	// 点赞文章
	likeArticle: (id) => {
		return request({
			url: apiConfig.apiList.likeArticle.replace(':id', id),
			method: 'POST',
			needAuth: true
		})
	},
	
	// 收藏文章
	favoriteArticle: (id) => {
		return request({
			url: apiConfig.apiList.favoriteArticle.replace(':id', id),
			method: 'POST',
			needAuth: true
		})
	},
	
	// 取消点赞文章
	unlikeArticle: (id) => {
		return request({
			url: apiConfig.apiList.unlikeArticle.replace(':id', id),
			method: 'DELETE',
			needAuth: true
		})
	},
	
	// 取消收藏文章
	unfavoriteArticle: (id) => {
		return request({
			url: apiConfig.apiList.unfavoriteArticle.replace(':id', id),
			method: 'DELETE',
			needAuth: true
		})
	},
	
	// 取消点赞文章（别名，用于兼容性）
	cancelLike: (id) => {
		return request({
			url: apiConfig.apiList.unlikeArticle.replace(':id', id),
			method: 'DELETE',
			needAuth: true // 需要认证
		})
	},
	
	// 取消收藏文章（别名，用于兼容性）
	cancelFavorite: (id) => {
		return request({
			url: apiConfig.apiList.unfavoriteArticle.replace(':id', id),
			method: 'DELETE',
			needAuth: true // 需要认证
		})
	},
	
	// 获取文章总数
	getArticlesTotal: () => {
		return request({
			url: apiConfig.apiList.getArticlesTotal,
			method: 'GET'
		})
	},

	// 根据用户ID获取发布文章数
	getUserArticleCount: (userId) => {
		return request({
			url: apiConfig.apiList.getUserArticleCount.replace(':userId', userId),
			method: 'GET'
		})
	},
	
	// 根据用户ID获取收藏文章数
	getUserFavoriteCount: (userId) => {
		return request({
			url: apiConfig.apiList.getUserFavoriteCount.replace(':userId', userId),
			method: 'GET'
		})
	}
}

export default articleApi